using System;using Tools;
//%+X
[Serializable] public class X : TOKEN{
 public  string  val ;
 public  override  string  ToString (){ return "X:"+ val ;
}

public override string yyname() { return "X"; }
public X(Lexer yyl):base(yyl){}}
//%+binary_op
[Serializable] public class binary_op : TOKEN{
 public  string  val ;
 public  override  string  ToString (){ return "binary_op"+ val ;
}

public override string yyname() { return "binary_op"; }
public binary_op(Lexer yyl):base(yyl){}}
[Serializable] public class X_1 : X {
  public X_1(Lexer yym):base(yym)  { 
            val = yytext; 
            Console.WriteLine("X({0})", val );
            }}
[Serializable] public class binary_op_1 : binary_op {
  public binary_op_1(Lexer yym):base(yym)  { 
                    val = yytext;
                    Console.WriteLine("binary_op({0})",val); 
                    }}
public class yytokens : Tokens {
 public yytokens() { arr = new byte[] { 
0,1,0,0,0,255,255,255,255,1,
0,0,0,0,0,0,0,4,1,0,0,
0,25,83,121,115,116,101,109,46,84,101,
120,116,46,65,83,67,73,73,69,110,99,
111,100,105,110,103,9,0,0,0,10,109,
95,99,111,100,101,80,97,103,101,8,100,
97,116,97,73,116,101,109,15,101,110,99,
111,100,101,114,70,97,108,108,98,97,99,
107,15,100,101,99,111,100,101,114,70,97,
108,108,98,97,99,107,19,69,110,99,111,
100,105,110,103,43,109,95,99,111,100,101,
80,97,103,101,17,69,110,99,111,100,105,
110,103,43,100,97,116,97,73,116,101,109,
21,69,110,99,111,100,105,110,103,43,109,
95,105,115,82,101,97,100,79,110,108,121,
24,69,110,99,111,100,105,110,103,43,101,
110,99,111,100,101,114,70,97,108,108,98,
97,99,107,24,69,110,99,111,100,105,110,
103,43,100,101,99,111,100,101,114,70,97,
108,108,98,97,99,107,0,3,3,3,0,
3,0,3,3,8,37,83,121,115,116,101,
109,46,71,108,111,98,97,108,105,122,97,
116,105,111,110,46,67,111,100,101,80,97,
103,101,68,97,116,97,73,116,101,109,38,
83,121,115,116,101,109,46,84,101,120,116,
46,69,110,99,111,100,101,114,82,101,112,
108,97,99,101,109,101,110,116,70,97,108,
108,98,97,99,107,38,83,121,115,116,101,
109,46,84,101,120,116,46,68,101,99,111,
100,101,114,82,101,112,108,97,99,101,109,
101,110,116,70,97,108,108,98,97,99,107,
8,37,83,121,115,116,101,109,46,71,108,
111,98,97,108,105,122,97,116,105,111,110,
46,67,111,100,101,80,97,103,101,68,97,
116,97,73,116,101,109,1,38,83,121,115,
116,101,109,46,84,101,120,116,46,69,110,
99,111,100,101,114,82,101,112,108,97,99,
101,109,101,110,116,70,97,108,108,98,97,
99,107,38,83,121,115,116,101,109,46,84,
101,120,116,46,68,101,99,111,100,101,114,
82,101,112,108,97,99,101,109,101,110,116,
70,97,108,108,98,97,99,107,159,78,0,
0,10,9,2,0,0,0,9,3,0,0,
0,159,78,0,0,10,1,9,2,0,0,
0,9,3,0,0,0,4,2,0,0,0,
38,83,121,115,116,101,109,46,84,101,120,
116,46,69,110,99,111,100,101,114,82,101,
112,108,97,99,101,109,101,110,116,70,97,
108,108,98,97,99,107,3,0,0,0,10,
115,116,114,68,101,102,97,117,108,116,27,
98,73,115,77,105,99,114,111,115,111,102,
116,66,101,115,116,70,105,116,70,97,108,
108,98,97,99,107,43,69,110,99,111,100,
101,114,70,97,108,108,98,97,99,107,43,
98,73,115,77,105,99,114,111,115,111,102,
116,66,101,115,116,70,105,116,70,97,108,
108,98,97,99,107,1,0,0,1,1,6,
6,0,0,0,1,63,0,0,4,3,0,
0,0,38,83,121,115,116,101,109,46,84,
101,120,116,46,68,101,99,111,100,101,114,
82,101,112,108,97,99,101,109,101,110,116,
70,97,108,108,98,97,99,107,3,0,0,
0,10,115,116,114,68,101,102,97,117,108,
116,27,98,73,115,77,105,99,114,111,115,
111,102,116,66,101,115,116,70,105,116,70,
97,108,108,98,97,99,107,43,68,101,99,
111,100,101,114,70,97,108,108,98,97,99,
107,43,98,73,115,77,105,99,114,111,115,
111,102,116,66,101,115,116,70,105,116,70,
97,108,108,98,97,99,107,1,0,0,1,
1,9,6,0,0,0,0,0,11,0,1,
0,0,0,255,255,255,255,1,0,0,0,
0,0,0,0,4,1,0,0,0,28,83,
121,115,116,101,109,46,67,111,108,108,101,
99,116,105,111,110,115,46,72,97,115,104,
116,97,98,108,101,7,0,0,0,10,76,
111,97,100,70,97,99,116,111,114,7,86,
101,114,115,105,111,110,8,67,111,109,112,
97,114,101,114,16,72,97,115,104,67,111,
100,101,80,114,111,118,105,100,101,114,8,
72,97,115,104,83,105,122,101,4,75,101,
121,115,6,86,97,108,117,101,115,0,0,
3,3,0,5,5,11,8,28,83,121,115,
116,101,109,46,67,111,108,108,101,99,116,
105,111,110,115,46,73,67,111,109,112,97,
114,101,114,36,83,121,115,116,101,109,46,
67,111,108,108,101,99,116,105,111,110,115,
46,73,72,97,115,104,67,111,100,101,80,
114,111,118,105,100,101,114,8,236,81,56,
63,31,0,0,0,10,10,47,0,0,0,
9,2,0,0,0,9,3,0,0,0,16,
2,0,0,0,29,0,0,0,9,4,0,
0,0,9,5,0,0,0,9,6,0,0,
0,9,7,0,0,0,9,8,0,0,0,
9,9,0,0,0,9,10,0,0,0,9,
11,0,0,0,9,12,0,0,0,9,13,
0,0,0,9,14,0,0,0,9,15,0,
0,0,9,16,0,0,0,9,17,0,0,
0,9,18,0,0,0,9,19,0,0,0,
9,20,0,0,0,9,21,0,0,0,9,
22,0,0,0,9,23,0,0,0,9,24,
0,0,0,9,25,0,0,0,9,26,0,
0,0,9,27,0,0,0,9,28,0,0,
0,9,29,0,0,0,9,30,0,0,0,
9,31,0,0,0,9,32,0,0,0,16,
3,0,0,0,29,0,0,0,9,33,0,
0,0,9,34,0,0,0,9,35,0,0,
0,9,36,0,0,0,9,37,0,0,0,
9,38,0,0,0,9,39,0,0,0,9,
40,0,0,0,9,41,0,0,0,9,42,
0,0,0,9,43,0,0,0,9,44,0,
0,0,9,45,0,0,0,9,46,0,0,
0,9,47,0,0,0,9,48,0,0,0,
9,49,0,0,0,9,50,0,0,0,9,
51,0,0,0,9,52,0,0,0,9,53,
0,0,0,9,54,0,0,0,9,55,0,
0,0,9,56,0,0,0,9,57,0,0,
0,9,58,0,0,0,9,59,0,0,0,
9,60,0,0,0,9,61,0,0,0,4,
4,0,0,0,36,83,121,115,116,101,109,
46,71,108,111,98,97,108,105,122,97,116,
105,111,110,46,85,110,105,99,111,100,101,
67,97,116,101,103,111,114,121,1,0,0,
0,7,118,97,108,117,101,95,95,0,8,
29,0,0,0,1,5,0,0,0,4,0,
0,0,28,0,0,0,1,6,0,0,0,
4,0,0,0,27,0,0,0,1,7,0,
0,0,4,0,0,0,26,0,0,0,1,
8,0,0,0,4,0,0,0,25,0,0,
0,1,9,0,0,0,4,0,0,0,24,
0,0,0,1,10,0,0,0,4,0,0,
0,23,0,0,0,1,11,0,0,0,4,
0,0,0,22,0,0,0,1,12,0,0,
0,4,0,0,0,21,0,0,0,1,13,
0,0,0,4,0,0,0,20,0,0,0,
1,14,0,0,0,4,0,0,0,19,0,
0,0,1,15,0,0,0,4,0,0,0,
18,0,0,0,1,16,0,0,0,4,0,
0,0,17,0,0,0,1,17,0,0,0,
4,0,0,0,15,0,0,0,1,18,0,
0,0,4,0,0,0,14,0,0,0,1,
19,0,0,0,4,0,0,0,13,0,0,
0,1,20,0,0,0,4,0,0,0,12,
0,0,0,1,21,0,0,0,4,0,0,
0,11,0,0,0,1,22,0,0,0,4,
0,0,0,10,0,0,0,1,23,0,0,
0,4,0,0,0,9,0,0,0,1,24,
0,0,0,4,0,0,0,8,0,0,0,
1,25,0,0,0,4,0,0,0,7,0,
0,0,1,26,0,0,0,4,0,0,0,
6,0,0,0,1,27,0,0,0,4,0,
0,0,5,0,0,0,1,28,0,0,0,
4,0,0,0,4,0,0,0,1,29,0,
0,0,4,0,0,0,3,0,0,0,1,
30,0,0,0,4,0,0,0,2,0,0,
0,1,31,0,0,0,4,0,0,0,1,
0,0,0,1,32,0,0,0,4,0,0,
0,0,0,0,0,12,62,0,0,0,60,
84,111,111,108,115,44,32,86,101,114,115,
105,111,110,61,48,46,48,46,48,46,48,
44,32,67,117,108,116,117,114,101,61,110,
101,117,116,114,97,108,44,32,80,117,98,
108,105,99,75,101,121,84,111,107,101,110,
61,110,117,108,108,5,33,0,0,0,13,
84,111,111,108,115,46,67,104,97,114,115,
101,116,3,0,0,0,5,109,95,99,97,
116,9,109,95,103,101,110,101,114,105,99,
7,109,95,99,104,97,114,115,3,0,3,
36,83,121,115,116,101,109,46,71,108,111,
98,97,108,105,122,97,116,105,111,110,46,
85,110,105,99,111,100,101,67,97,116,101,
103,111,114,121,3,28,83,121,115,116,101,
109,46,67,111,108,108,101,99,116,105,111,
110,115,46,72,97,115,104,116,97,98,108,
101,62,0,0,0,1,193,255,255,255,4,
0,0,0,29,0,0,0,205,176,9,64,
0,0,0,1,34,0,0,0,33,0,0,
0,1,191,255,255,255,4,0,0,0,28,
0,0,0,194,166,9,66,0,0,0,1,
35,0,0,0,33,0,0,0,1,189,255,
255,255,4,0,0,0,27,0,0,0,94,
9,68,0,0,0,1,36,0,0,0,33,
0,0,0,1,187,255,255,255,4,0,0,
0,26,0,0,0,36,9,70,0,0,0,
1,37,0,0,0,33,0,0,0,1,185,
255,255,255,4,0,0,0,25,0,0,0,
60,9,72,0,0,0,1,38,0,0,0,
33,0,0,0,1,183,255,255,255,4,0,
0,0,24,0,0,0,33,9,74,0,0,
0,1,39,0,0,0,33,0,0,0,1,
181,255,255,255,4,0,0,0,23,0,0,
0,194,187,9,76,0,0,0,1,40,0,
0,0,33,0,0,0,1,179,255,255,255,
4,0,0,0,22,0,0,0,194,171,9,
78,0,0,0,1,41,0,0,0,33,0,
0,0,1,177,255,255,255,4,0,0,0,
21,0,0,0,41,9,80,0,0,0,1,
42,0,0,0,33,0,0,0,1,175,255,
255,255,4,0,0,0,20,0,0,0,40,
9,82,0,0,0,1,43,0,0,0,33,
0,0,0,1,173,255,255,255,4,0,0,
0,19,0,0,0,194,173,9,84,0,0,
0,1,44,0,0,0,33,0,0,0,1,
171,255,255,255,4,0,0,0,18,0,0,
0,95,9,86,0,0,0,1,45,0,0,
0,33,0,0,0,1,169,255,255,255,4,
0,0,0,17,0,0,0,238,128,128,9,
88,0,0,0,1,46,0,0,0,33,0,
0,0,1,167,255,255,255,4,0,0,0,
15,0,0,0,216,128,9,90,0,0,0,
1,47,0,0,0,33,0,0,0,1,165,
255,255,255,4,0,0,0,14,0,0,0,
0,9,92,0,0,0,1,48,0,0,0,
33,0,0,0,1,163,255,255,255,4,0,
0,0,13,0,0,0,226,128,169,9,94,
0,0,0,1,49,0,0,0,33,0,0,
0,1,161,255,255,255,4,0,0,0,12,
0,0,0,226,128,168,9,96,0,0,0,
1,50,0,0,0,33,0,0,0,1,159,
255,255,255,4,0,0,0,11,0,0,0,
32,9,98,0,0,0,1,51,0,0,0,
33,0,0,0,1,157,255,255,255,4,0,
0,0,10,0,0,0,194,178,9,100,0,
0,0,1,52,0,0,0,33,0,0,0,
1,155,255,255,255,4,0,0,0,9,0,
0,0,225,155,174,9,102,0,0,0,1,
53,0,0,0,33,0,0,0,1,153,255,
255,255,4,0,0,0,8,0,0,0,48,
9,104,0,0,0,1,54,0,0,0,33,
0,0,0,1,151,255,255,255,4,0,0,
0,7,0,0,0,210,136,9,106,0,0,
0,1,55,0,0,0,33,0,0,0,1,
149,255,255,255,4,0,0,0,6,0,0,
0,224,164,131,9,108,0,0,0,1,56,
0,0,0,33,0,0,0,1,147,255,255,
255,4,0,0,0,5,0,0,0,204,128,
9,110,0,0,0,1,57,0,0,0,33,
0,0,0,1,145,255,255,255,4,0,0,
0,4,0,0,0,198,187,9,112,0,0,
0,1,58,0,0,0,33,0,0,0,1,
143,255,255,255,4,0,0,0,3,0,0,
0,202,176,9,114,0,0,0,1,59,0,
0,0,33,0,0,0,1,141,255,255,255,
4,0,0,0,2,0,0,0,199,133,9,
116,0,0,0,1,60,0,0,0,33,0,
0,0,1,139,255,255,255,4,0,0,0,
1,0,0,0,194,170,9,118,0,0,0,
1,61,0,0,0,33,0,0,0,1,137,
255,255,255,4,0,0,0,0,0,0,0,
195,128,9,120,0,0,0,1,64,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,121,0,
0,0,9,122,0,0,0,1,66,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,123,0,
0,0,9,124,0,0,0,1,68,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,125,0,
0,0,9,126,0,0,0,1,70,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,127,0,
0,0,9,128,0,0,0,1,72,0,0,
0,1,0,0,0,236,81,56,63,2,0,
0,0,10,10,11,0,0,0,9,129,0,
0,0,9,130,0,0,0,1,74,0,0,
0,1,0,0,0,236,81,56,63,4,0,
0,0,10,10,11,0,0,0,9,131,0,
0,0,9,132,0,0,0,1,76,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,133,0,
0,0,9,134,0,0,0,1,78,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,135,0,
0,0,9,136,0,0,0,1,80,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,137,0,
0,0,9,138,0,0,0,1,82,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,139,0,
0,0,9,140,0,0,0,1,84,0,0,
0,1,0,0,0,236,81,56,63,2,0,
0,0,10,10,11,0,0,0,9,141,0,
0,0,9,142,0,0,0,1,86,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,143,0,
0,0,9,144,0,0,0,1,88,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,145,0,
0,0,9,146,0,0,0,1,90,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,147,0,
0,0,9,148,0,0,0,1,92,0,0,
0,1,0,0,0,236,81,56,63,3,0,
0,0,10,10,11,0,0,0,9,149,0,
0,0,9,150,0,0,0,1,94,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,151,0,
0,0,9,152,0,0,0,1,96,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,153,0,
0,0,9,154,0,0,0,1,98,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,155,0,
0,0,9,156,0,0,0,1,100,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,157,0,
0,0,9,158,0,0,0,1,102,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,159,0,
0,0,9,160,0,0,0,1,104,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,161,0,
0,0,9,162,0,0,0,1,106,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,163,0,
0,0,9,164,0,0,0,1,108,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,165,0,
0,0,9,166,0,0,0,1,110,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,167,0,
0,0,9,168,0,0,0,1,112,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,169,0,
0,0,9,170,0,0,0,1,114,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,171,0,
0,0,9,172,0,0,0,1,116,0,0,
0,1,0,0,0,236,81,56,63,1,0,
0,0,10,10,11,0,0,0,9,173,0,
0,0,9,174,0,0,0,1,118,0,0,
0,1,0,0,0,236,81,56,63,29,0,
0,0,10,10,47,0,0,0,9,175,0,
0,0,9,176,0,0,0,1,120,0,0,
0,1,0,0,0,236,81,56,63,29,0,
0,0,10,10,47,0,0,0,9,177,0,
0,0,9,178,0,0,0,16,121,0,0,
0,1,0,0,0,8,3,205,176,16,122,
0,0,0,1,0,0,0,8,1,1,16,
123,0,0,0,1,0,0,0,8,3,194,
166,16,124,0,0,0,1,0,0,0,8,
1,1,16,125,0,0,0,1,0,0,0,
8,3,94,16,126,0,0,0,1,0,0,
0,8,1,1,16,127,0,0,0,1,0,
0,0,8,3,36,16,128,0,0,0,1,
0,0,0,8,1,1,16,129,0,0,0,
2,0,0,0,8,3,60,8,3,43,16,
130,0,0,0,2,0,0,0,8,1,1,
8,1,1,16,131,0,0,0,4,0,0,
0,8,3,46,8,3,47,8,3,44,8,
3,33,16,132,0,0,0,4,0,0,0,
8,1,1,8,1,1,8,1,1,8,1,
1,16,133,0,0,0,1,0,0,0,8,
3,194,187,16,134,0,0,0,1,0,0,
0,8,1,1,16,135,0,0,0,1,0,
0,0,8,3,194,171,16,136,0,0,0,
1,0,0,0,8,1,1,16,137,0,0,
0,1,0,0,0,8,3,41,16,138,0,
0,0,1,0,0,0,8,1,1,16,139,
0,0,0,1,0,0,0,8,3,40,16,
140,0,0,0,1,0,0,0,8,1,1,
16,141,0,0,0,2,0,0,0,8,3,
45,8,3,194,173,16,142,0,0,0,2,
0,0,0,8,1,1,8,1,1,16,143,
0,0,0,1,0,0,0,8,3,95,16,
144,0,0,0,1,0,0,0,8,1,1,
16,145,0,0,0,1,0,0,0,8,3,
238,128,128,16,146,0,0,0,1,0,0,
0,8,1,1,16,147,0,0,0,1,0,
0,0,8,3,216,128,16,148,0,0,0,
1,0,0,0,8,1,1,16,149,0,0,
0,3,0,0,0,8,3,13,8,3,10,
8,3,0,16,150,0,0,0,3,0,0,
0,8,1,1,8,1,1,8,1,1,16,
151,0,0,0,1,0,0,0,8,3,226,
128,169,16,152,0,0,0,1,0,0,0,
8,1,1,16,153,0,0,0,1,0,0,
0,8,3,226,128,168,16,154,0,0,0,
1,0,0,0,8,1,1,16,155,0,0,
0,1,0,0,0,8,3,32,16,156,0,
0,0,1,0,0,0,8,1,1,16,157,
0,0,0,1,0,0,0,8,3,194,178,
16,158,0,0,0,1,0,0,0,8,1,
1,16,159,0,0,0,1,0,0,0,8,
3,225,155,174,16,160,0,0,0,1,0,
0,0,8,1,1,16,161,0,0,0,1,
0,0,0,8,3,48,16,162,0,0,0,
1,0,0,0,8,1,1,16,163,0,0,
0,1,0,0,0,8,3,210,136,16,164,
0,0,0,1,0,0,0,8,1,1,16,
165,0,0,0,1,0,0,0,8,3,224,
164,131,16,166,0,0,0,1,0,0,0,
8,1,1,16,167,0,0,0,1,0,0,
0,8,3,204,128,16,168,0,0,0,1,
0,0,0,8,1,1,16,169,0,0,0,
1,0,0,0,8,3,198,187,16,170,0,
0,0,1,0,0,0,8,1,1,16,171,
0,0,0,1,0,0,0,8,3,202,176,
16,172,0,0,0,1,0,0,0,8,1,
1,16,173,0,0,0,1,0,0,0,8,
3,199,133,16,174,0,0,0,1,0,0,
0,8,1,1,16,175,0,0,0,27,0,
0,0,8,3,121,8,3,116,8,3,111,
8,3,106,8,3,101,8,3,194,170,8,
3,118,8,3,113,8,3,108,8,3,103,
8,3,98,8,3,120,8,3,115,8,3,
110,8,3,105,8,3,100,8,3,122,8,
3,117,8,3,112,8,3,107,8,3,102,
8,3,97,8,3,119,8,3,114,8,3,
109,8,3,104,8,3,99,16,176,0,0,
0,27,0,0,0,8,1,1,8,1,1,
8,1,1,8,1,1,8,1,1,8,1,
1,8,1,1,8,1,1,8,1,1,8,
1,1,8,1,1,8,1,1,8,1,1,
8,1,1,8,1,1,8,1,1,8,1,
1,8,1,1,8,1,1,8,1,1,8,
1,1,8,1,1,8,1,1,8,1,1,
8,1,1,8,1,1,8,1,1,16,177,
0,0,0,27,0,0,0,8,3,89,8,
3,84,8,3,79,8,3,74,8,3,69,
8,3,86,8,3,81,8,3,76,8,3,
71,8,3,66,8,3,195,128,8,3,88,
8,3,83,8,3,78,8,3,73,8,3,
68,8,3,90,8,3,85,8,3,80,8,
3,75,8,3,70,8,3,65,8,3,87,
8,3,82,8,3,77,8,3,72,8,3,
67,16,178,0,0,0,27,0,0,0,8,
1,1,8,1,1,8,1,1,8,1,1,
8,1,1,8,1,1,8,1,1,8,1,
1,8,1,1,8,1,1,8,1,1,8,
1,1,8,1,1,8,1,1,8,1,1,
8,1,1,8,1,1,8,1,1,8,1,
1,8,1,1,8,1,1,8,1,1,8,
1,1,8,1,1,8,1,1,8,1,1,
8,1,1,11,0,1,0,0,0,255,255,
255,255,1,0,0,0,0,0,0,0,4,
1,0,0,0,36,83,121,115,116,101,109,
46,71,108,111,98,97,108,105,122,97,116,
105,111,110,46,85,110,105,99,111,100,101,
67,97,116,101,103,111,114,121,1,0,0,
0,7,118,97,108,117,101,95,95,0,8,
29,0,0,0,11,0,1,0,0,0,255,
255,255,255,1,0,0,0,0,0,0,0,
4,1,0,0,0,14,83,121,115,116,101,
109,46,66,111,111,108,101,97,110,1,0,
0,0,7,109,95,118,97,108,117,101,0,
1,0,11,0,1,0,0,0,255,255,255,
255,1,0,0,0,0,0,0,0,4,1,
0,0,0,28,83,121,115,116,101,109,46,
67,111,108,108,101,99,116,105,111,110,115,
46,72,97,115,104,116,97,98,108,101,7,
0,0,0,10,76,111,97,100,70,97,99,
116,111,114,7,86,101,114,115,105,111,110,
8,67,111,109,112,97,114,101,114,16,72,
97,115,104,67,111,100,101,80,114,111,118,
105,100,101,114,8,72,97,115,104,83,105,
122,101,4,75,101,121,115,6,86,97,108,
117,101,115,0,0,3,3,0,5,5,11,
8,28,83,121,115,116,101,109,46,67,111,
108,108,101,99,116,105,111,110,115,46,73,
67,111,109,112,97,114,101,114,36,83,121,
115,116,101,109,46,67,111,108,108,101,99,
116,105,111,110,115,46,73,72,97,115,104,
67,111,100,101,80,114,111,118,105,100,101,
114,8,236,81,56,63,1,0,0,0,10,
10,11,0,0,0,9,2,0,0,0,9,
3,0,0,0,16,2,0,0,0,1,0,
0,0,6,4,0,0,0,9,89,89,73,
78,73,84,73,65,76,16,3,0,0,0,
1,0,0,0,9,5,0,0,0,12,6,
0,0,0,60,84,111,111,108,115,44,32,
86,101,114,115,105,111,110,61,48,46,48,
46,48,46,48,44,32,67,117,108,116,117,
114,101,61,110,101,117,116,114,97,108,44,
32,80,117,98,108,105,99,75,101,121,84,
111,107,101,110,61,110,117,108,108,5,5,
0,0,0,9,84,111,111,108,115,46,68,
102,97,4,0,0,0,5,109,95,109,97,
112,9,109,95,97,99,116,105,111,110,115,
10,109,95,116,111,107,67,108,97,115,115,
7,109,95,115,116,97,116,101,3,4,1,
0,28,83,121,115,116,101,109,46,67,111,
108,108,101,99,116,105,111,110,115,46,72,
97,115,104,116,97,98,108,101,16,84,111,
111,108,115,46,68,102,97,43,65,99,116,
105,111,110,6,0,0,0,8,6,0,0,
0,9,7,0,0,0,10,6,8,0,0,
0,0,23,0,0,0,1,7,0,0,0,
1,0,0,0,236,81,56,63,61,0,0,
0,10,10,107,0,0,0,9,9,0,0,
0,9,10,0,0,0,16,9,0,0,0,
58,0,0,0,8,3,109,8,3,111,8,
3,120,8,3,115,8,3,117,8,3,119,
8,3,121,8,3,44,8,3,46,8,3,
66,8,3,68,8,3,70,8,3,72,8,
3,74,8,3,76,8,3,78,8,3,80,
8,3,82,8,3,84,8,3,86,8,3,
88,8,3,90,8,3,98,8,3,100,8,
3,102,8,3,104,8,3,106,8,3,108,
8,3,110,8,3,112,8,3,114,8,3,
116,8,3,118,8,3,13,8,3,122,8,
3,43,8,3,45,8,3,47,8,3,113,
8,3,65,8,3,67,8,3,69,8,3,
71,8,3,73,8,3,75,8,3,77,8,
3,79,8,3,81,8,3,83,8,3,85,
8,3,87,8,3,89,8,3,97,8,3,
99,8,3,101,8,3,103,8,3,105,8,
3,107,16,10,0,0,0,58,0,0,0,
9,11,0,0,0,9,11,0,0,0,9,
11,0,0,0,9,11,0,0,0,9,11,
0,0,0,9,11,0,0,0,9,11,0,
0,0,9,12,0,0,0,9,12,0,0,
0,9,11,0,0,0,9,11,0,0,0,
9,11,0,0,0,9,11,0,0,0,9,
11,0,0,0,9,11,0,0,0,9,11,
0,0,0,9,11,0,0,0,9,11,0,
0,0,9,11,0,0,0,9,11,0,0,
0,9,11,0,0,0,9,11,0,0,0,
9,11,0,0,0,9,11,0,0,0,9,
11,0,0,0,9,11,0,0,0,9,11,
0,0,0,9,11,0,0,0,9,11,0,
0,0,9,11,0,0,0,9,11,0,0,
0,9,11,0,0,0,9,11,0,0,0,
9,14,0,0,0,9,11,0,0,0,9,
12,0,0,0,9,12,0,0,0,9,12,
0,0,0,9,11,0,0,0,9,11,0,
0,0,9,11,0,0,0,9,11,0,0,
0,9,11,0,0,0,9,11,0,0,0,
9,11,0,0,0,9,11,0,0,0,9,
11,0,0,0,9,11,0,0,0,9,11,
0,0,0,9,11,0,0,0,9,11,0,
0,0,9,11,0,0,0,9,11,0,0,
0,9,11,0,0,0,9,11,0,0,0,
9,11,0,0,0,9,11,0,0,0,9,
11,0,0,0,1,11,0,0,0,5,0,
0,0,9,18,0,0,0,9,19,0,0,
0,6,20,0,0,0,3,88,95,49,66,
1,0,0,1,12,0,0,0,5,0,0,
0,9,21,0,0,0,9,22,0,0,0,
6,23,0,0,0,11,98,105,110,97,114,
121,95,111,112,95,49,29,0,0,0,1,
14,0,0,0,5,0,0,0,9,24,0,
0,0,10,9,8,0,0,0,131,0,0,
0,1,18,0,0,0,1,0,0,0,236,
81,56,63,0,0,0,0,10,10,11,0,
0,0,9,26,0,0,0,9,27,0,0,
0,5,19,0,0,0,16,84,111,111,108,
115,46,68,102,97,43,65,99,116,105,111,
110,2,0,0,0,5,97,95,97,99,116,
6,97,95,110,101,120,116,0,4,8,16,
84,111,111,108,115,46,68,102,97,43,65,
99,116,105,111,110,6,0,0,0,6,0,
0,0,2,0,0,0,10,1,21,0,0,
0,1,0,0,0,236,81,56,63,0,0,
0,0,10,10,11,0,0,0,9,28,0,
0,0,9,29,0,0,0,1,22,0,0,
0,19,0,0,0,8,0,0,0,10,1,
24,0,0,0,1,0,0,0,236,81,56,
63,1,0,0,0,10,10,11,0,0,0,
9,30,0,0,0,9,31,0,0,0,16,
26,0,0,0,0,0,0,0,16,27,0,
0,0,0,0,0,0,16,28,0,0,0,
0,0,0,0,16,29,0,0,0,0,0,
0,0,16,30,0,0,0,1,0,0,0,
8,3,10,16,31,0,0,0,1,0,0,
0,9,32,0,0,0,1,32,0,0,0,
5,0,0,0,9,33,0,0,0,9,34,
0,0,0,9,8,0,0,0,152,0,0,
0,1,33,0,0,0,1,0,0,0,236,
81,56,63,0,0,0,0,10,10,11,0,
0,0,9,36,0,0,0,9,37,0,0,
0,1,34,0,0,0,19,0,0,0,12,
0,0,0,10,16,36,0,0,0,0,0,
0,0,16,37,0,0,0,0,0,0,0,
11,0,1,0,0,0,255,255,255,255,1,
0,0,0,0,0,0,0,4,1,0,0,
0,28,83,121,115,116,101,109,46,67,111,
108,108,101,99,116,105,111,110,115,46,72,
97,115,104,116,97,98,108,101,7,0,0,
0,10,76,111,97,100,70,97,99,116,111,
114,7,86,101,114,115,105,111,110,8,67,
111,109,112,97,114,101,114,16,72,97,115,
104,67,111,100,101,80,114,111,118,105,100,
101,114,8,72,97,115,104,83,105,122,101,
4,75,101,121,115,6,86,97,108,117,101,
115,0,0,3,3,0,5,5,11,8,28,
83,121,115,116,101,109,46,67,111,108,108,
101,99,116,105,111,110,115,46,73,67,111,
109,112,97,114,101,114,36,83,121,115,116,
101,109,46,67,111,108,108,101,99,116,105,
111,110,115,46,73,72,97,115,104,67,111,
100,101,80,114,111,118,105,100,101,114,8,
236,81,56,63,4,0,0,0,10,10,11,
0,0,0,9,2,0,0,0,9,3,0,
0,0,16,2,0,0,0,4,0,0,0,
6,4,0,0,0,1,88,6,5,0,0,
0,9,98,105,110,97,114,121,95,111,112,
6,6,0,0,0,11,98,105,110,97,114,
121,95,111,112,95,49,6,7,0,0,0,
3,88,95,49,16,3,0,0,0,4,0,
0,0,9,8,0,0,0,9,9,0,0,
0,9,10,0,0,0,9,11,0,0,0,
12,12,0,0,0,60,84,111,111,108,115,
44,32,86,101,114,115,105,111,110,61,48,
46,48,46,48,46,48,44,32,67,117,108,
116,117,114,101,61,110,101,117,116,114,97,
108,44,32,80,117,98,108,105,99,75,101,
121,84,111,107,101,110,61,110,117,108,108,
5,8,0,0,0,17,84,111,111,108,115,
46,84,111,107,67,108,97,115,115,68,101,
102,4,0,0,0,6,109,95,110,97,109,
101,10,109,95,114,101,102,84,111,107,101,
110,16,109,95,105,110,105,116,105,97,108,
105,115,97,116,105,111,110,11,109,95,105,
109,112,108,101,109,101,110,116,1,1,1,
1,12,0,0,0,9,4,0,0,0,6,
14,0,0,0,5,84,79,75,69,78,6,
15,0,0,0,0,9,15,0,0,0,1,
9,0,0,0,8,0,0,0,9,5,0,
0,0,9,14,0,0,0,9,15,0,0,
0,9,15,0,0,0,1,10,0,0,0,
8,0,0,0,9,6,0,0,0,9,5,
0,0,0,6,21,0,0,0,121,32,123,
32,10,32,32,32,32,32,32,32,32,32,
32,32,32,32,32,32,32,32,32,32,32,
118,97,108,32,61,32,121,121,116,101,120,
116,59,10,32,32,32,32,32,32,32,32,
32,32,32,32,32,32,32,32,32,32,32,
32,67,111,110,115,111,108,101,46,87,114,
105,116,101,76,105,110,101,40,34,98,105,
110,97,114,121,95,111,112,40,123,48,125,
41,34,44,118,97,108,41,59,32,10,32,
32,32,32,32,32,32,32,32,32,32,32,
32,32,32,32,32,32,32,32,125,9,15,
0,0,0,1,11,0,0,0,8,0,0,
0,9,7,0,0,0,9,4,0,0,0,
6,25,0,0,0,91,32,123,32,10,32,
32,32,32,32,32,32,32,32,32,32,32,
118,97,108,32,61,32,121,121,116,101,120,
116,59,32,10,32,32,32,32,32,32,32,
32,32,32,32,32,67,111,110,115,111,108,
101,46,87,114,105,116,101,76,105,110,101,
40,34,88,40,123,48,125,41,34,44,32,
118,97,108,32,41,59,10,32,32,32,32,
32,32,32,32,32,32,32,32,125,9,15,
0,0,0,11,0};
 new Tfactory(this,"X",new TCreator(X_factory));
 new Tfactory(this,"binary_op",new TCreator(binary_op_factory));
 new Tfactory(this,"binary_op_1",new TCreator(binary_op_1_factory));
 new Tfactory(this,"X_1",new TCreator(X_1_factory));
}
public static object X_factory(Lexer yyl) { return new X(yyl);}
public static object binary_op_factory(Lexer yyl) { return new binary_op(yyl);}
public static object binary_op_1_factory(Lexer yyl) { return new binary_op_1(yyl);}
public static object X_1_factory(Lexer yyl) { return new X_1(yyl);}
public override TOKEN OldAction(Lexer yym,string yytext, int action, ref bool reject) {
  switch(action) {
  case -1: break;
   case 12: ;
      break;
  }
  return null;
}}
public class tokens:Lexer {
public tokens():base(new yytokens()) {}
public tokens(Tokens tks):base(tks){}

 }
